<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="tutorial.css">
<TITLE>
IC as a solver for real variables
</TITLE>
</HEAD>
<BODY >
<A HREF="tutorial065.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="tutorial063.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="tutorial067.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc137">9.3</A>&nbsp;&nbsp;IC as a solver for real variables</H2>
<A NAME="@default230"></A>
The IC solver is a hybrid solver which supports both real and integer
variables.
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
<B>&#8857;</B><DD CLASS="dd-description"> <FONT COLOR="#9832CC">See Chapter&nbsp;</FONT><A HREF="tutorial053.html#chapicintro"><FONT COLOR="#9832CC">8</FONT></A><FONT COLOR="#9832CC"> for an introduction to IC and how to use
it with integer variables.</FONT>
</DL>

<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
<B>&#8857;</B><DD CLASS="dd-description"> <FONT COLOR="#9832CC">See the IC chapter in the Constraint Library Manual for a full list of
the arithmetic operators which are available for use in IC constraint
expressions.</FONT>
</DL>


	<BLOCKQUOTE CLASS="figure"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
	<DIV CLASS="center">
	<TABLE CELLPADDING=10>
<TR><TD BGCOLOR="#DB9370">
	
<UL CLASS="itemize"><LI CLASS="li-itemize">
Real variables may be declared using
	<A HREF="../bips/lib/ic/reals-1.html"><B>reals/1</B></A><A NAME="@default231"></A>,
	<A HREF="../bips/lib/ic/SNN-2.html"><B>$::/2</B></A><A NAME="@default232"></A>,
	<A HREF="../bips/lib/ic/NN-2.html"><B>::/2</B></A><A NAME="@default233"></A> (specifying
	non-integer bounds) or just by using them in an IC constraint
<LI CLASS="li-itemize">Basic constraints available for real variables are
	<A HREF="../bips/lib/ic/SE-2.html"><B>$=/2</B></A><A NAME="@default234"></A>,
	<A HREF="../bips/lib/ic/SGE-2.html"><B>$&gt;=/2</B></A><A NAME="@default235"></A>,
	<A HREF="../bips/lib/ic/SEL-2.html"><B>$=&lt;/2</B></A><A NAME="@default236"></A>,
	<A HREF="../bips/lib/ic/SG-2.html"><B>$&gt;/2</B></A><A NAME="@default237"></A>,
	<A HREF="../bips/lib/ic/SL-2.html"><B>$&lt;/2</B></A><A NAME="@default238"></A>
	and
			<B>$\=/2</B>
 			as well as their reified versions and the reified connectives
<LI CLASS="li-itemize">Real constraints also work with integer variables and a mix of integer
	and real variables
<LI CLASS="li-itemize">Solutions to real constraints can be found using
	<A HREF="../bips/lib/ic/locate-2.html"><B>locate/2</B></A><A NAME="@default239"></A>,
	<A HREF="../bips/lib/ic/locate-3.html"><B>locate/3</B></A><A NAME="@default240"></A>,
	<A HREF="../bips/lib/ic/locate-4.html"><B>locate/4</B></A><A NAME="@default241"></A> or
	<A HREF="../bips/lib/ic/squash-3.html"><B>squash/3</B></A><A NAME="@default242"></A>
</UL>

	</TD>
</TR></TABLE>
	</DIV>
	<BR>
<BR>
<DIV CLASS="center">Figure 9.3: Real variables and constraints</DIV><BR>
<BR>

	<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></BLOCKQUOTE>
<A NAME="@default243"></A>
IC's real constraints perform bounds propagation in the same way as the
integer versions; indeed, most of the basic integer constraints are
transformed into their real counterparts, plus a declaration of the
integrality of the variables appearing in the constraint.<BR>
<BR>
Note that the interval reasoning performed to propagate real bounds is the
same as that used for bounded reals; that is, the inferences made are safe,
taking into account potential floating point errors.<BR>
<BR>
<HR>
<A HREF="tutorial065.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="tutorial063.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="tutorial067.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
